<?php

namespace config;

use GatewayWorker\Lib\DbConnection;

class Mysql
{
    //创建静态私有的变量保存该类对象
    static private $instance = null;
    //防止直接创建对象
    private function __construct()
    {
    }
    //防止克隆对象
    private function __clone()
    {
    }
    static public function getInstance()
    {
        if (empty(self::$instance)) {
            //加文件锁--防止并发 多次实例mysql连接对象
            $file = fopen(__DIR__ . '/lock_mysql.txt', 'w+');

            if (flock($file, LOCK_EX)) { //阻塞模式（后面的进程会一直等待前面的进程执行完毕）
                if (self::$instance) {
                    return self::$instance;
                } else {
                    self::$instance = new DbConnection('127.0.0.1', '3306', 'root', 'TNZj9mcK1qvRDY8n', 'yqb_caijin_live');
                }
                return self::$instance;
                flock($file, LOCK_UN); //解锁
            }
            //关闭文件
            fclose($file);
        }
        return self::$instance;
    }
}
